Linux中安装Clash并且实现全局代理(纯命令行)

您所在的位置:网站首页 linux 代理设置 Linux中安装Clash并且实现全局代理(纯命令行)

Linux中安装Clash并且实现全局代理(纯命令行)

2023-02-19 18:45| 来源: 网络整理| 查看: 265

目录 Linux中安装Clash并且实现全局代理(纯命令行)场景选择Clash版本下载Clash命令行下载手动下载(适用于使用命令行下载速度慢的用户) 运行Clash解决config.yaml和MMDB问题config.yaml问题MMDB问题 正式启动Clashclash后台运行systemctl常用命令 测试代理是否正常使用全局代理 番外clash的UI控制界面下载UI控制界面文件配置config.yaml文件服务器商打开端口 完结撒花

Linux中安装Clash并且实现全局代理(纯命令行) 场景

​ 我有一台广东的Linux学生服务器,有一些东西需要连接到外网。中间磕磕绊绊总算是成功了,特此记录一下。方便自己也为了方便别人。 curl可成功访问google 本人服务器为腾讯云CentOS 7.x,代理软件为Clash(需自己准备订阅地址)

选择Clash版本

https://github.com/Dreamacro/clash/releases 进入上面的地址,会出现很多版本号,选择最新的即可。 接着选择适合你服务器的Clash版本,错误的版本可能会导致无法运行。一般来说选择clash-linux-amd64即可clash-linux-amd64 接着右键选择复制链接 复制链接

下载Clash

此处提供两种方式,以下方式任选其一即可

命令行下载手动下载 命令行下载

登录进入Linux,在/usr/local/创建新的目录clash用来存放我们的clash文件,命令为:

[root@VM-0-14-centos ~]# mkdir /usr/local/clash

移动到此目录

[root@VM-0-14-centos ~]# cd /usr/local/clash [root@VM-0-14-centos clash]#

使用命令wget + 刚才复制的地址

[root@VM-0-14-centos clash]# wget https://github.com/Dreamacro/clash/releases/download/v1.13.0/clash-linux-amd64-v1.13.0.gz

等待下载完成 下载中 下载完成

手动下载(适用于使用命令行下载速度慢的用户)

登录进入Linux,在/usr/local/创建新的目录clash用来存放我们的clash文件,命令为:

[root@VM-0-14-centos ~]# mkdir /usr/local/clash

移动到此目录

[root@VM-0-14-centos ~]# cd /usr/local/clash [root@VM-0-14-centos clash]#

在自己电脑浏览器进入刚才复制的网站,将文件下载下来后使用FTP程序上传到/usr/local/clash/目录

运行Clash

下载完成了,接着解压,一定要进入clash目录操作

[root@VM-0-14-centos ~]# cd /usr/local/clash [root@VM-0-14-centos clash]#

小技巧:使用tab键可快速填充文件名

[root@VM-0-14-centos clash]# gunzip clash-linux-amd64-v1.13.0.gz

注意一下,可能你看这篇教程的时候下载的不是1.13.0版本的clash,所以请注意你自己的文件名字,文件名称错误是无法解压的,文件名字在你下载完成后,是会显示的

2023-02-16 19:39:52 (26.7 KB/s) - ‘clash-linux-amd64-v1.13.0.gz’ saved [3772162/3772162]

单引号标注的就是文件名,或者也可以使用命令ls来查看当前目录下面有哪些文件。 文件列表 接着给予解压出来的文件可执行的权限(774)

[root@VM-0-14-centos clash]# chmod +x clash-linux-amd64-v1.13.0

给予权限

小技巧:白色代表其他文件,不可执行;绿色则是可执行的文件;此外还有: 蓝色表示目录;红色表示压缩文件或包文件;浅蓝色表示链接文件。

文件名有点长,改个名字吧,改成程序名字 + 版本号

[root@VM-0-14-centos clash]# mv clash-linux-amd64-v1.13.0 clash-v1.13.0

下面开始运行

[root@VM-0-14-centos clash]# ./clash-v1.13.0

clash首次运行 第一行是运行clash,记得要在文件名前面加上./才行 第二行是clash的提示,说“没有配置文件,已为您创建完成”,但是文件是空的,无法使用 第三行也是,说“没有找到MMDB文件,开始下载”,但是会下载失败

下面我们先开始解决这两个问题

解决config.yaml和MMDB问题 config.yaml问题

config.yaml为clash的代理规则和clash的一些其他设置。代理规则不需要我们自己编写,通过订阅地址直接下载即可

此处将订阅链接粘贴进双引号中间。注意不要删除双引号,不要删除空格

wget -O ~/.config/clash/config.yaml "订阅链接"

小技巧:~用来代表当前用户的名称,若是使用root登录的,则代表root。所以这个命令实际上就是 wget -O root/.config/clash/config.yaml "订阅链接" 将这个订阅链接下载到指定的文件

config.yaml配置文件 至此config.yaml搞定

MMDB问题

Country.mmdb为全球IP库,可以实现各个国家的IP信息解析和地理定位,没有这个文件clash是无法运行的。 但目前版本的clash有点问题,不会自动生成MMDB文件,所以需要使用命令行下载 直接在终端运行此代码即可

[root@VM-0-14-centos clash]# wget -O ~/.config/clash/Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb

下载MMDB 至此,MMDB下载完成

正式启动Clash

到此,clash就可以正常运行了 clash成功运行 由于我的订阅地址有10条规则,所以会有10条Start initial compatible provider xxxx

Mixed(http+socks) proxy listening at: 127.0.0.1:7890则代表已经开启了http(含https)和socks代理,只要服务器内有软件流量通过7890这个端口,流量都将进入clash从而被代理。(但有些不支持设置,后面会说如何使用全局代理)

RESTful API listening at: [::]:9090代表clash已经开启了ui控制面板,是的,Linux的clash有可视化控制面板。

关闭clash:按下键盘上的Ctrl + C

clash后台运行

如果按照上面的方法运行clash的话,一旦我们关闭了终端,那么clash也会一并关闭。所以我们需要设置一下后台运行clash 在/etc/systemd/system/目录新建一个clash.service文件,并且直接进入vim编辑器

[root@VM-0-14-centos clash]# vim /etc/systemd/system/clash.service

vim编辑器 注意,这个就是编辑器,这个编辑器对小白很不友好。请不要乱按按键,请跟着步骤走

先按下键盘上的字母i键,进入编辑模式 编辑模式 当左下角变为INSERT则代表当前是编辑模式 键盘上下左右可以控制光标移动 将以下代码输入进编辑器

[Unit] Description=Clash service After=network.target [Service] Type=simple User=root ExecStart=这里写你的clash运行的绝对路径(本文中的路径是/usr/local/clash/clash-v1.13.0) Restart=on-failure RestartPreventExitStatus=23 [Install] WantedBy=multi-user.target

输入完成

输入完成后按下键盘ESC键 左下角的INSERT会消失,现在则进入了编辑器的底线命令模式 保存并且退出 接着是直接输入:wq代表保存并且退出,然后按下回车。 在这里插入图片描述 编辑器就会回到原来界面,可以使用cat命令来查看一下内容是否正确 在这里插入图片描述 确认内容无误后,就可以开始启动clash服务

[root@VM-0-14-centos clash]# systemctl start clash

然后可以查看一下是否正常

[root@VM-0-14-centos clash]# systemctl status clash

确保下面的 Active 为 active(running) 即正常。 在这里插入图片描述

systemctl常用命令

systemctl status clash 查看clash服务 systemctl start clash 启动clash服务 systemctl stop clash 停止clash服务 systemctl restart clash 重启clash服务 systemctl enable clash 设置开机自启clash服务 systemctl daemon-reload 如果修改了clash.service文件,需要此命令来重载被修改的服务文件

测试代理是否正常

根据我们之前前台运行可得知,默认是监控了自己的7890端口 在这里插入图片描述 那么现在,使用curl来向谷歌发送一个请求看能否正常返回数据

[root@VM-0-14-centos ~]# curl --proxy 127.0.0.1:7890 www.google.com

返回正常 Google成功返回数据,代表7890端口代理正常,clash运行正常

使用全局代理

设置全局代理需要在/etc/profile文件最后添加几行代码 进入/etc/profile文件

[root@VM-0-14-centos ~]# vim /etc/profile

先按下键盘上的字母i键,进入编辑模式 当左下角变为INSERT则代表当前是编辑模式 键盘上下左右可以控制光标移动 将以下代码输入进编辑器

export http_proxy=127.0.0.1:7890 export https_proxy=127.0.0.1:7890

除了http和https之外,还可代理其他,可根据下图酌情添加(本人未尝试过) 在这里插入图片描述

输入完成后按下键盘ESC键 左下角的INSERT会消失,现在则进入了编辑器的底线命令模式 在这里插入图片描述

在这里插入图片描述 接着是直接输入:wq代表保存并且退出,然后按下回车。

[root@VM-0-14-centos ~]# vim /etc/profile [root@VM-0-14-centos ~]#

cat一下看是否保存

[root@VM-0-14-centos ~]# cat /etc/profile

在这里插入图片描述 已成功保存。 应用一下profile文件,重启一下clash服务

[root@VM-0-14-centos ~]# source /etc/profile [root@VM-0-14-centos ~]# systemctl restart clash

直接curl测试google

[root@VM-0-14-centos ~]# curl www.google.com

在这里插入图片描述 成功返回,全局代理设置成功~

番外

clash的UI控制界面

使用ui控制界面需要设置控制界面的html等文件;设置好访问的IP和端口、设置好密钥、设置好html文件路径

下载UI控制界面文件

进入我们的config.yaml所在的文件夹,使用wget命令下载UI文件

[root@VM-0-14-centos ~]# cd ~/.config/clash [root@VM-0-14-centos clash]# wget https://github.com/haishanh/yacd/releases/download/v0.3.7/yacd.tar.xz

UI文件下载完成 使用tar命令解压出文件

[root@VM-0-14-centos clash]# tar xvJf yacd.tar.xz

解压完成 解压完成可以看一下,根目录下多出了public文件夹,改个名字,改为ui 在这里插入图片描述

配置config.yaml文件

依然是使用vim打开clash的config.yaml配置文件

vim编辑器的使用请参见使用全局代理,此处不过多赘述

[root@VM-0-14-centos ~]# vim ~/.config/clash/config.yaml

确保你的配置文件有以下三个

external-controller: 0.0.0.0:9090 secret: "123qwe" external-ui: "ui" external-controller代表外部访问地址,此处意思为允许所有人从9090端口访问(当然需要开启9090端口)secret访问密钥,不设置密钥的话任何人都可以访问,较为危险external-uiui文件的路径,由于此处config.yaml文件和ui文件夹在同一目录下,所以只需文件夹名称即可

填写完成后,:wq保存 重启一下clash服务,命令为:

[root@VM-0-14-centos clash]# systemctl restart clash

在这里插入图片描述 重启完成,但此时还不能访问UI控制面板,因为端口还未打开

服务器商打开端口 以腾讯云举例,登录腾讯云控制台点击云服务器进入

在这里插入图片描述

左侧点击安全组,进入 在这里插入图片描述

新建一个安全组 在这里插入图片描述

全部默认,直接确定 在这里插入图片描述

选择新建的安全组,修改规则 在这里插入图片描述 入站规则中,添加一个规则 在这里插入图片描述

依照图示添加 在这里插入图片描述

最后我们再将此安全组的规则应用到服务器 在这里插入图片描述 在这里插入图片描述

选择运行clash的服务器,点击确定 在这里插入图片描述 应用完成后,再自己电脑浏览器打开一下网址: http://你自己服务器ip:9090/ui 在这里插入图片描述

API Base URL为http://你自己服务器ip:9090Secret(optional)为config.yaml中设置的secret

填写后即可登录 在这里插入图片描述 访问进来后,在Config里面的Language可以修改中文

在Config里面修改的东西不会保存,只会在本次运行起作用。Clash重启后即会恢复为config.yaml中设置的数据

在这里插入图片描述 在代理里面可以看得见不同规则所选择的代理服务器不同,可以根据需要修改

完结撒花


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3